package com.cloudkinto.service.company;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cloudkinto.common.web.SingleResult;
import com.cloudkinto.entity.CompanyAuthorizeDo;
import com.cloudkinto.service.company.vo.*;

/**
 * <p>
 * service接口
 * </p>
 *
 * @author hua
 * @since 2024-09-09
 */
public interface CompanyAuthorizeService extends IService<CompanyAuthorizeDo> {

    SingleResult pageInit(Long companyId);


    String generateCustomAuthKey(CompanyAuthUpdateReq req, Long companyId, Long userId);

    SingleResult temuTokenInfoPush(TemuAuthorizeReq req, Long companyId, Long userId);

    TemuAuthVerifyResponse tokenVerifyApi(TemuAuthTokenVerifyReq req);

    TemuAuthVerifyRes tokenVerify(TemuAuthTokenVerifyReq req);

    ProductQueryResponse getSkuInfoList(ProductQueryReq req);

    SingleResult skuInfoChangeInfoPush(SkuInfoChangeReq req, Long companyId);

    InventoryQueryResponse getInventoryList(InventoryQueryReq req);

    InventoryChangeListResponse inventoryChangeListGet(InventoryChangeListReq req);

    SingleResult inventoryChangePush(InventoryChangePushReq req, Long companyId);

    WarehouseOrderCreateResponse temuOrderCreate(WarehouseOrderCreateReq req);

    WarehouseOrderCreateResponse temuOrderCreateWithLabel(OrderCreateWithLabelReq req);

    TemuOrderCancelResponse temuOrderCancel(TemuOrderCancelReq req);

    /**
     * temu向对接仓获取仓库列表
     *
     * @param req 请求参数
     * @return 响应仓库信息
     */
    WarehouseInfoListResponse temuWarehouseListGet(WarehouseInfoListReq req);

    LogisticsProductListResponse logisticsProductListBatchGet(LogisticsProductListGet req);

    DeliveryFeeCalcResponse deliveryFeeCalc(DeliveryFeeCalcReq req);

    /**
     * temu向对接仓 退货单创建
     */
    TemuReturnOrderOperateResponse temuReturnOrderCreate(TemuReturnOrderCreateReq req);

    /**
     * 修改退货单
     */
    TemuReturnOrderOperateResponse temuReturnOrderUpdate(TemuReturnOrderUpdateReq req);

    /**
     * 取消退货单
     */
    TemuReturnOrderOperateResponse temuReturnOrderCancel(TemuReturnOrderCancelReq req);

    WarehouseOrderQueryResponse temuOrderQuery(WarehouseOrderQueryReq req);

    String temuTokenInfoPush1(String ticket, Long shopId, Long companyId);

    TemuBaseQueryRes<ProductQueryDetailResponse> getSkuInfoDetail(ProductQueryReq req);

    TemuBaseQueryRes<WarehouseOrderFeeQueryResponse> temuOrderFeeQuery(WarehouseOrderQueryReq req);
}
